Package gwtappcontainer.testhelpers

Source Code of gwtappcontainer.testhelpers.APITestHelper3

package gwtappcontainer.testhelpers;

import static org.junit.Assert.assertTrue;
import gwtappcontainer.server.apps.security.SecurityAPI;
import gwtappcontainer.shared.apis.APIResponse;

import java.io.File;

import com.google.appengine.api.users.User;
import com.google.appengine.api.users.UserServiceFactory;
import com.google.appengine.tools.development.testing.LocalDatastoreServiceTestConfig;
import com.google.appengine.tools.development.testing.LocalServiceTestHelper;
import com.google.appengine.tools.development.testing.LocalUserServiceTestConfig;

public class APITestHelper3 {
 
  private String email = "testhelper@testhelper.com";
 
  private final LocalServiceTestHelper dataStoreTestHelper =
          new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());
     
    private final LocalServiceTestHelper userServiceTestHelper =
          new LocalServiceTestHelper(new LocalUserServiceTestConfig())
              .setEnvIsLoggedIn(false)
              .setEnvAuthDomain("example.com")
              .setEnvEmail(email);
              
    public User getUser() {
      return UserServiceFactory.getUserService().getCurrentUser();
    }       
             
    public User loginAsInvalidUser() {
     
      //first delete userentity (if present) by logging as admin
      SecurityAPI api = new SecurityAPI();
      api.deleteUser(email, loginAsSuperUser());
     
      //change to non-admin
      userServiceTestHelper.setEnvIsLoggedIn(true)
    .setEnvEmail(email).setEnvIsAdmin(false);
     
      return UserServiceFactory.getUserService().getCurrentUser();
    }
   
    public User loginAsValidUser() { 
      //logs in as a valid user that exists in ishaportal security userentity
     
      SecurityAPI api = new SecurityAPI();
      api.addUser(email, loginAsSuperUser());
     
      userServiceTestHelper.setEnvEmail(email);
      return UserServiceFactory.getUserService().getCurrentUser();
    }
   
    public User loginWithPrivilege(String privilege) {
           
      SecurityAPI api = new SecurityAPI();
      @SuppressWarnings("unused")
    APIResponse response = api.addPrivilege(privilege, loginAsSuperUser());
     
      //delete user if exists and add it again
      response = api.deleteUser(email, loginAsSuperUser());
           
      response = api.addUser(email, loginAsSuperUser());           
     
      response = api.assignPrivilegeToUser(email, privilege, loginAsSuperUser());           
     
      userServiceTestHelper.setEnvEmail(email);
      return UserServiceFactory.getUserService().getCurrentUser();
    }     
   
   
    public User loginAsSuperUser() {
      final String SUPER_USER = "sathyanarayanant@gmail.com";
      //ugly hack required
      userServiceTestHelper.setEnvIsLoggedIn(true)
        .setEnvEmail(SUPER_USER).setEnvIsAdmin(true);
     
      return UserServiceFactory.getUserService().getCurrentUser();
    }
   
    public String getEmail() {
      return email;
    }      
       
  public void setUp() {
   
    dataStoreTestHelper.setUp();
    userServiceTestHelper.setUp();              
  }
 
  public void tearDown() {   
    userServiceTestHelper.tearDown();
   
   
   
    try {
      dataStoreTestHelper.tearDown();
    } catch (Exception e) {
      // data store test helper throws null pointer exception
      // when used userservice test helper
     
      //swallow the exception for now as a temporary hack till the root cause
      //is identified
    }
   
    //deleteTempFiles();
  }   
 
  @SuppressWarnings("unused")
  private void deleteTempFiles() {
    String workingDir = System.getProperty("user.dir");
    System.out.println("Working Directory = " +
                System.getProperty("user.dir"));
   
    String dataDir = workingDir + "\\WEB-INF\\appengine-generated\\";
    String dbBinFile = dataDir + "local_db.bin";
    String indexesFile = dataDir + "datastore-indexes-auto.xml";
   
    try {
      File file = new File(dbBinFile);
      file.delete();
      file = new File(indexesFile);
      file.delete();
      assertTrue(true);
   
    } catch (Exception ex) {
      System.out.println("exception when deleting temp files: "
        + ex.getMessage());     
    }
  }
}
TOP

Related Classes of gwtappcontainer.testhelpers.APITestHelper3

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.